home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 4 / FM Towns Free Software Collection 4 - Disc 1.iso / msdos / rpal / gtran_fm.asm next >
Assembly Source File  |  1991-10-18  |  3KB  |  156 lines

  1. _TEXT    segment    byte public 'CODE'
  2. DGROUP    group    _TEXT,_DATA,_BSS
  3.     assume    cs:DGROUP,ds:DGROUP,ss:DGROUP
  4. _TEXT    ends
  5.  
  6. _DATA    segment word public 'DATA'
  7. _DATA    ends
  8.  
  9. _BSS    segment word public 'BSS'
  10. _BSS    ends
  11.  
  12. _TEXT    segment    byte public 'CODE'
  13.  
  14. _htot    proc    near
  15.  
  16.     push    ds
  17.     mov ax,0c000h
  18.     mov ds,ax
  19.     mov ah,ds:[0ff83h]
  20.     mov byte ptr ds:[0ff81h],01h
  21.     call pro0
  22.     mov byte ptr ds:[0ff81h],42h
  23.     call pro0
  24.     mov byte ptr ds:[0ff81h],84h
  25.     call pro0
  26.     mov byte ptr ds:[0ff81h],0c8h
  27.     call pro0
  28.     mov ds:[0ff83h],ah
  29.     pop ds
  30.     ret
  31.  
  32. pro0:    mov bx,7ff8h
  33.     mov ds:[0ff83h],al    ; bank 0 set
  34. loop0:  mov al,10h
  35.     mov cx,[bx]        ; read
  36.     mov ds:[0ff83h],al    ; bank 1 set
  37.     xor al,al
  38.     mov [bx],cx        ; write
  39.     mov ds:[0ff83h],al    ; bank 0 set
  40.     dec bx            ; GRAM addr decliment
  41.     dec bx
  42.     jge loop0
  43.     ret
  44. _htot    endp
  45.  
  46.  
  47. _ttoh    proc    near
  48.  
  49.     push    ds
  50.     mov ax,0c000h
  51.     mov ds,ax
  52.     add al,10h
  53.     mov ah,ds:[0ff83h]
  54.     mov byte ptr ds:[0ff81h],01h
  55.     call pro1
  56.     mov byte ptr ds:[0ff81h],42h
  57.     call pro1
  58.     mov byte ptr ds:[0ff81h],84h
  59.     call pro1
  60.     mov byte ptr ds:[0ff81h],0c8h
  61.     call pro1
  62.     mov ds:[0ff83h],ah
  63.     pop ds
  64.     ret
  65.  
  66. pro1:    mov bx,7ff8h
  67.     mov ds:[0ff83h],al    ; bank 1 set
  68. loop1:  xor al,al
  69.     mov cx,[bx]        ; read
  70.     mov ds:[0ff83h],al    ; bank 0 set
  71.     mov al,10h
  72.     mov [bx],cx        ; write
  73.     mov ds:[0ff83h],al    ; bank 1 set
  74.     dec bx            ; GRAM addr decliment
  75.     dec bx
  76.     jge loop1
  77.     ret
  78.  
  79. _ttoh    endp
  80.  
  81.  
  82. _thchg    proc    near
  83.  
  84.     push    bp
  85.     push    ds
  86.     push    di
  87.     push    si
  88.  
  89.     mov ax,0c000h
  90.     mov ds,ax
  91.     mov al,ds:[0ff83h]
  92.     push    ax
  93.     mov byte ptr ds:[0ff81h],01h
  94.     call pro2
  95.     mov byte ptr ds:[0ff81h],42h
  96.     call pro2
  97.     mov byte ptr ds:[0ff81h],84h
  98.     call pro2
  99.     mov byte ptr ds:[0ff81h],0c8h
  100.     call pro2
  101.     pop ax
  102.     mov ds:[0ff83h],al
  103.     pop si
  104.     pop di
  105.     pop ds
  106.     pop bp
  107.     ret
  108.  
  109. pro2:    mov bx,7ff8h
  110.     xor al,al
  111.     mov ds:[0ff83h],al    ; set bank 0
  112. loop2:  mov al,10h
  113.     mov cx,[bx]
  114.     mov di,ds:[bx+2]
  115.     mov ds:[0ff83h],al    ; set bank 1
  116.     xor al,al
  117.     mov si,[bx]        ; si and bp are buffers of bank 1
  118.     mov bp,ds:[bx+2]    ; cx and di are buffers of bank 0
  119.     mov [bx],cx
  120.     mov ds:[bx+2],di
  121.     mov ds:[0ff83h],al    ; set bank 0
  122.     mov [bx],si
  123.     mov ds:[bx+2],bp
  124.     mov al,10h
  125.     mov cx,[bx+4]
  126.     mov di,ds:[bx+6]
  127.     mov ds:[0ff83h],al    ; set bank 1
  128.     xor al,al
  129.     mov si,[bx+4]
  130.     mov bp,ds:[bx+6]
  131.     mov [bx+4],cx
  132.     mov ds:[bx+6],di
  133.     mov ds:[0ff83h],al    ; set bank 0
  134.     mov [bx+4],si
  135.     mov ds:[bx+6],bp
  136.     sub bx,8        ; decliment
  137.     jge loop2
  138.  
  139.     ret    
  140.  
  141. _thchg    endp
  142.  
  143.  
  144. _TEXT    ends
  145.  
  146. _DATA    segment word public 'DATA'
  147. _DATA    ends
  148.  
  149. _TEXT    segment    byte public 'CODE'
  150. _TEXT    ends
  151.  
  152.     public    _htot
  153.     public    _thchg
  154.     public    _ttoh
  155.     end
  156.